package com.leapp.sk.util.wxentry

import android.content.Context
import cc.vv.lklibrary.log.LogOperate
import com.leapp.sk.wxapi.WXEntryActivity
import com.example.util.APP_ID_WX
import com.tencent.mm.opensdk.openapi.IWXAPI
import com.tencent.mm.opensdk.openapi.WXAPIFactory
import com.tencent.mm.opensdk.modelmsg.SendAuth


/**
 * @author  chaohaipeng  on 2018/7/9.
 */
class WXLoginUtil {
    companion object {
        /**
         * 实例化微信登录
         */
        fun initWXEntryLogin(context: Context): IWXAPI {
            //通过WXAPIFactory工厂获取IWXApI的示例
            val api: IWXAPI = WXAPIFactory.createWXAPI(context, APP_ID_WX, true)


            //将应用的appid注册到微信
            api?.registerApp(APP_ID_WX)


            return api

        }

        /**
         * 透明界面校验
         */
        fun checkIntent(activity: WXEntryActivity, api: IWXAPI?) {
            //注意：
            //第三方开发者如果使用透明界面来实现WXEntryActivity，需要判断handleIntent的返回值，如果返回值为false，则说明入参不合法未被SDK处理，应finish当前透明界面，避免外部通过传递非法参数的Intent导致停留在透明界面，引起用户的疑惑
            try {
                val result = api?.handleIntent(activity.intent, activity)
                if (!result!!) {
                    LogOperate.d("参数不合法，未被SDK处理，退出")

                }
                activity.finish()
            } catch (e: Exception) {
                e.printStackTrace()
            }
        }

        /**
         * 发送请求
         */
        fun sendRequest(api: IWXAPI?) {
            val req = SendAuth.Req()
            req.scope = "snsapi_userinfo"
            req.state = "diandi_wx_login"
            api?.sendReq(req)
        }
    }


}